// import md5 from '@/utils/tools/md5.min.js';
import config from '@/config/config';

// import { useUserStore } from '@/stores/user';

// import { debounce } from "@/utils/common.js";
interface Options {
  url: string;
  data: any;
  method: string;
  headers?: any;
  suffixFlag: boolean;
}
export default function service(
  options: Options = {
    url: '',
    data: {},
    method: 'get',
    headers: {},
    suffixFlag: true,
  }
) {
  const { suffixFlag = true } = options;
  // const user = useUserStore();
  const token = ''; //从vuex中获取登录凭证
  const pages = getCurrentPages(); // 获取栈实例
  const currentRoute = pages[pages.length - 1].route; // 获取当前页面路由
  let suffixUrl = suffixFlag ? `${config.suffix}` : ``; //是否添加路由前缀

  options.url = `${config.baseUrl}${suffixUrl}${options.url}`;
  // 驼峰转下划线
  // if (isUnderScore) {
  //   options.data = toUnderScoreFun(options.data);
  // }
  //配置请求头
  options.header = {
    'content-type': 'application/json',
    Authorization: 'Bearer ' + token,
    // refreshToken: user.refreshToken,
    ...options.headers,
  };

  return new Promise((resolve, reject) => {
    //成功
    options.success = (res) => {
      // 无感刷新token
      if (res.header['X-New-Access-Token']) {
        // user.setToken(res.header['X-New-Access-Token']);
      }
      if (res?.data.success) {
        //请求成功
        resolve(res.data);
      }
      // if (res.data?.code == 500) {
      //   reject(res);
      //   return uni.showToast({
      //     icon: 'none',
      //     title: res.data?.message,
      //   });
      // }

      // if (Number(res.data?.code) === 0) {
      //   //请求成功
      //   resolve(res.data);
      // } else if (res.data?.code == 401) {
      //   uni.removeStorageSync('token');
      //   uni.hideLoading();

      // uni.showModal({
      //   title: '登录提示',
      //   content: '您还没有登录,请先登录体验更多功能哦！',
      //   success: (res) => {
      //     // if (res.confirm) {
      //     //   uni.navigateTo({
      //     //     url: '/pagesA/login/login',
      //     //   });
      //     // } else if (res.cancel) {
      //     //   // console.log('用户点击取消');
      //     // }
      //   },
      //   fail: () => { },
      // });
      // 跳转到登录页面 避免重复跳转
      // if (currentRoute != 'pagesA/login/login') {
      //   uni.navigateTo({
      //     url: '/pagesA/login/login',
      //   });
      // }
      // } else if (res.data?.code == 2) {
      //   uni.showModal({
      //     title: '提示',
      //     content: res.data?.message,
      //     success: (res) => {
      //       // if (res.confirm) {
      //       //   uni.navigateTo({
      //       //     url: '/pages/applyOrder/applyOrder',
      //       //   });
      //       // } else if (res.cancel) {
      //       //   // console.log('用户点击取消');
      //       // }
      //     },
      //     fail: () => { },
      //   });
      // } else {
      //   uni.showToast({
      //     icon: 'none',
      //     duration: 1500,
      //     title: res.data?.message,
      //   });
      //   reject(res); //错误
      // }
    };
    //错误
    options.fail = (err) => {
      reject(err); //错误
      uni.showToast({
        icon: 'none',
        duration: 1500,
        title: 'Network Error',
      });
    };
    uni.request(options);
  });
}
